home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
fpkpas92.zip
/
SRCRTL.ZIP
/
RTL
/
DOS
/
PALETTE.PPI
< prev
next >
Wrap
Text File
|
1997-07-01
|
2KB
|
90 lines
{ PALETTE.PPI }
{ GetRGBPalette,SetRGBPalette,SetAllPalette,GetPalette }
{ Bei saemtlichen Palettefunktionen nicht auf Grafikmodus testen }
{ funktionieren auch im TextModus }
procedure SetAllPalette(var Palette:PaletteType);
begin
asm
movl Palette,%esi
movb $767,%ecx
xorl %eax,%eax
movl $2,%ebx
movw $0x03c8,%dx
outb %al,%dx
incw %dx
sp_loop:
movb (%esi,%ebx,1),%al
shrb $2,%al
outb %al,%dx
incl %ebx
decl %ecx
jnz sp_loop
end;
end;
procedure SetRGBPalette(ColorNum,RedValue,GreenValue,BlueValue:byte);
begin
asm
movw $0x3c8,%DX
movb ColorNum,%al
outb %AL,%DX
incw %DX
movb RedValue,%al
shrb $2,%al
outb %AL,%DX
movb GreenValue,%al
shrb $2,%al
outb %AL,%DX
movb BlueValue,%al
shrb $2,%al
outb %AL,%DX
end;
end;
procedure GetRGBPalette(ColorNum:byte; var RedValue,GreenValue,BlueValue:byte);
begin
asm
movw $0x3c7,%DX
movb ColorNum,%ax
outb %AL,%DX
addw $2,%DX
xorl %eax,%eax
inb %DX,%AL
shlb $2,%al
movb %al,RedValue
inb %DX,%AL
shlb $2,%al
movb %al,GreenValue
inb %DX,%AL
shlb $2,%al
movb %al,BlueValue
end;
end;
procedure Getpalette(var Palette:PaletteType);
begin
asm
movl palette,%edi
movw $0,(%edi)
testw $2,_BYTESPERPIXEL
jnz gp_end
movw $0x100,(%edi)
movl $767,%ecx
xorl %eax,%eax
movl $2,%ebx
movl $0x03c7,%dx
outb %al,%dx
addw $2,%dx
gp_loop:
inb %dx,%al
shlb $2,%al
movb %al,(%edi,%ebx,1)
incl %ebx
decl %ecx
jnz gp_loop
gp_end:
end;
end;